home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 September / PCWorld_2007-09_cd.bin / system / ntfs / ntfsundelete.exe / {app} / sre_constants.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2007-02-06  |  6KB  |  224 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. '''Internal support module for sre'''
  5. MAGIC = 20031017
  6. MAXREPEAT = 65535
  7.  
  8. class error(Exception):
  9.     pass
  10.  
  11. FAILURE = 'failure'
  12. SUCCESS = 'success'
  13. ANY = 'any'
  14. ANY_ALL = 'any_all'
  15. ASSERT = 'assert'
  16. ASSERT_NOT = 'assert_not'
  17. AT = 'at'
  18. BIGCHARSET = 'bigcharset'
  19. BRANCH = 'branch'
  20. CALL = 'call'
  21. CATEGORY = 'category'
  22. CHARSET = 'charset'
  23. GROUPREF = 'groupref'
  24. GROUPREF_IGNORE = 'groupref_ignore'
  25. GROUPREF_EXISTS = 'groupref_exists'
  26. IN = 'in'
  27. IN_IGNORE = 'in_ignore'
  28. INFO = 'info'
  29. JUMP = 'jump'
  30. LITERAL = 'literal'
  31. LITERAL_IGNORE = 'literal_ignore'
  32. MARK = 'mark'
  33. MAX_REPEAT = 'max_repeat'
  34. MAX_UNTIL = 'max_until'
  35. MIN_REPEAT = 'min_repeat'
  36. MIN_UNTIL = 'min_until'
  37. NEGATE = 'negate'
  38. NOT_LITERAL = 'not_literal'
  39. NOT_LITERAL_IGNORE = 'not_literal_ignore'
  40. RANGE = 'range'
  41. REPEAT = 'repeat'
  42. REPEAT_ONE = 'repeat_one'
  43. SUBPATTERN = 'subpattern'
  44. MIN_REPEAT_ONE = 'min_repeat_one'
  45. AT_BEGINNING = 'at_beginning'
  46. AT_BEGINNING_LINE = 'at_beginning_line'
  47. AT_BEGINNING_STRING = 'at_beginning_string'
  48. AT_BOUNDARY = 'at_boundary'
  49. AT_NON_BOUNDARY = 'at_non_boundary'
  50. AT_END = 'at_end'
  51. AT_END_LINE = 'at_end_line'
  52. AT_END_STRING = 'at_end_string'
  53. AT_LOC_BOUNDARY = 'at_loc_boundary'
  54. AT_LOC_NON_BOUNDARY = 'at_loc_non_boundary'
  55. AT_UNI_BOUNDARY = 'at_uni_boundary'
  56. AT_UNI_NON_BOUNDARY = 'at_uni_non_boundary'
  57. CATEGORY_DIGIT = 'category_digit'
  58. CATEGORY_NOT_DIGIT = 'category_not_digit'
  59. CATEGORY_SPACE = 'category_space'
  60. CATEGORY_NOT_SPACE = 'category_not_space'
  61. CATEGORY_WORD = 'category_word'
  62. CATEGORY_NOT_WORD = 'category_not_word'
  63. CATEGORY_LINEBREAK = 'category_linebreak'
  64. CATEGORY_NOT_LINEBREAK = 'category_not_linebreak'
  65. CATEGORY_LOC_WORD = 'category_loc_word'
  66. CATEGORY_LOC_NOT_WORD = 'category_loc_not_word'
  67. CATEGORY_UNI_DIGIT = 'category_uni_digit'
  68. CATEGORY_UNI_NOT_DIGIT = 'category_uni_not_digit'
  69. CATEGORY_UNI_SPACE = 'category_uni_space'
  70. CATEGORY_UNI_NOT_SPACE = 'category_uni_not_space'
  71. CATEGORY_UNI_WORD = 'category_uni_word'
  72. CATEGORY_UNI_NOT_WORD = 'category_uni_not_word'
  73. CATEGORY_UNI_LINEBREAK = 'category_uni_linebreak'
  74. CATEGORY_UNI_NOT_LINEBREAK = 'category_uni_not_linebreak'
  75. OPCODES = [
  76.     FAILURE,
  77.     SUCCESS,
  78.     ANY,
  79.     ANY_ALL,
  80.     ASSERT,
  81.     ASSERT_NOT,
  82.     AT,
  83.     BRANCH,
  84.     CALL,
  85.     CATEGORY,
  86.     CHARSET,
  87.     BIGCHARSET,
  88.     GROUPREF,
  89.     GROUPREF_EXISTS,
  90.     GROUPREF_IGNORE,
  91.     IN,
  92.     IN_IGNORE,
  93.     INFO,
  94.     JUMP,
  95.     LITERAL,
  96.     LITERAL_IGNORE,
  97.     MARK,
  98.     MAX_UNTIL,
  99.     MIN_UNTIL,
  100.     NOT_LITERAL,
  101.     NOT_LITERAL_IGNORE,
  102.     NEGATE,
  103.     RANGE,
  104.     REPEAT,
  105.     REPEAT_ONE,
  106.     SUBPATTERN,
  107.     MIN_REPEAT_ONE]
  108. ATCODES = [
  109.     AT_BEGINNING,
  110.     AT_BEGINNING_LINE,
  111.     AT_BEGINNING_STRING,
  112.     AT_BOUNDARY,
  113.     AT_NON_BOUNDARY,
  114.     AT_END,
  115.     AT_END_LINE,
  116.     AT_END_STRING,
  117.     AT_LOC_BOUNDARY,
  118.     AT_LOC_NON_BOUNDARY,
  119.     AT_UNI_BOUNDARY,
  120.     AT_UNI_NON_BOUNDARY]
  121. CHCODES = [
  122.     CATEGORY_DIGIT,
  123.     CATEGORY_NOT_DIGIT,
  124.     CATEGORY_SPACE,
  125.     CATEGORY_NOT_SPACE,
  126.     CATEGORY_WORD,
  127.     CATEGORY_NOT_WORD,
  128.     CATEGORY_LINEBREAK,
  129.     CATEGORY_NOT_LINEBREAK,
  130.     CATEGORY_LOC_WORD,
  131.     CATEGORY_LOC_NOT_WORD,
  132.     CATEGORY_UNI_DIGIT,
  133.     CATEGORY_UNI_NOT_DIGIT,
  134.     CATEGORY_UNI_SPACE,
  135.     CATEGORY_UNI_NOT_SPACE,
  136.     CATEGORY_UNI_WORD,
  137.     CATEGORY_UNI_NOT_WORD,
  138.     CATEGORY_UNI_LINEBREAK,
  139.     CATEGORY_UNI_NOT_LINEBREAK]
  140.  
  141. def makedict(list):
  142.     d = { }
  143.     i = 0
  144.     for item in list:
  145.         d[item] = i
  146.         i = i + 1
  147.     
  148.     return d
  149.  
  150. OPCODES = makedict(OPCODES)
  151. ATCODES = makedict(ATCODES)
  152. CHCODES = makedict(CHCODES)
  153. OP_IGNORE = {
  154.     GROUPREF: GROUPREF_IGNORE,
  155.     IN: IN_IGNORE,
  156.     LITERAL: LITERAL_IGNORE,
  157.     NOT_LITERAL: NOT_LITERAL_IGNORE }
  158. AT_MULTILINE = {
  159.     AT_BEGINNING: AT_BEGINNING_LINE,
  160.     AT_END: AT_END_LINE }
  161. AT_LOCALE = {
  162.     AT_BOUNDARY: AT_LOC_BOUNDARY,
  163.     AT_NON_BOUNDARY: AT_LOC_NON_BOUNDARY }
  164. AT_UNICODE = {
  165.     AT_BOUNDARY: AT_UNI_BOUNDARY,
  166.     AT_NON_BOUNDARY: AT_UNI_NON_BOUNDARY }
  167. CH_LOCALE = {
  168.     CATEGORY_DIGIT: CATEGORY_DIGIT,
  169.     CATEGORY_NOT_DIGIT: CATEGORY_NOT_DIGIT,
  170.     CATEGORY_SPACE: CATEGORY_SPACE,
  171.     CATEGORY_NOT_SPACE: CATEGORY_NOT_SPACE,
  172.     CATEGORY_WORD: CATEGORY_LOC_WORD,
  173.     CATEGORY_NOT_WORD: CATEGORY_LOC_NOT_WORD,
  174.     CATEGORY_LINEBREAK: CATEGORY_LINEBREAK,
  175.     CATEGORY_NOT_LINEBREAK: CATEGORY_NOT_LINEBREAK }
  176. CH_UNICODE = {
  177.     CATEGORY_DIGIT: CATEGORY_UNI_DIGIT,
  178.     CATEGORY_NOT_DIGIT: CATEGORY_UNI_NOT_DIGIT,
  179.     CATEGORY_SPACE: CATEGORY_UNI_SPACE,
  180.     CATEGORY_NOT_SPACE: CATEGORY_UNI_NOT_SPACE,
  181.     CATEGORY_WORD: CATEGORY_UNI_WORD,
  182.     CATEGORY_NOT_WORD: CATEGORY_UNI_NOT_WORD,
  183.     CATEGORY_LINEBREAK: CATEGORY_UNI_LINEBREAK,
  184.     CATEGORY_NOT_LINEBREAK: CATEGORY_UNI_NOT_LINEBREAK }
  185. SRE_FLAG_TEMPLATE = 1
  186. SRE_FLAG_IGNORECASE = 2
  187. SRE_FLAG_LOCALE = 4
  188. SRE_FLAG_MULTILINE = 8
  189. SRE_FLAG_DOTALL = 16
  190. SRE_FLAG_UNICODE = 32
  191. SRE_FLAG_VERBOSE = 64
  192. SRE_FLAG_DEBUG = 128
  193. SRE_INFO_PREFIX = 1
  194. SRE_INFO_LITERAL = 2
  195. SRE_INFO_CHARSET = 4
  196. if __name__ == '__main__':
  197.     
  198.     def dump(f, d, prefix):
  199.         items = d.items()
  200.         items.sort(key = (lambda a: a[1]))
  201.         for k, v in items:
  202.             f.write('#define %s_%s %s\n' % (prefix, k.upper(), v))
  203.         
  204.  
  205.     f = open('sre_constants.h', 'w')
  206.     f.write("/*\n * Secret Labs' Regular Expression Engine\n *\n * regular expression matching engine\n *\n * NOTE: This file is generated by sre_constants.py.  If you need\n * to change anything in here, edit sre_constants.py and run it.\n *\n * Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.\n *\n * See the _sre.c file for information on usage and redistribution.\n */\n\n")
  207.     f.write('#define SRE_MAGIC %d\n' % MAGIC)
  208.     dump(f, OPCODES, 'SRE_OP')
  209.     dump(f, ATCODES, 'SRE')
  210.     dump(f, CHCODES, 'SRE')
  211.     f.write('#define SRE_FLAG_TEMPLATE %d\n' % SRE_FLAG_TEMPLATE)
  212.     f.write('#define SRE_FLAG_IGNORECASE %d\n' % SRE_FLAG_IGNORECASE)
  213.     f.write('#define SRE_FLAG_LOCALE %d\n' % SRE_FLAG_LOCALE)
  214.     f.write('#define SRE_FLAG_MULTILINE %d\n' % SRE_FLAG_MULTILINE)
  215.     f.write('#define SRE_FLAG_DOTALL %d\n' % SRE_FLAG_DOTALL)
  216.     f.write('#define SRE_FLAG_UNICODE %d\n' % SRE_FLAG_UNICODE)
  217.     f.write('#define SRE_FLAG_VERBOSE %d\n' % SRE_FLAG_VERBOSE)
  218.     f.write('#define SRE_INFO_PREFIX %d\n' % SRE_INFO_PREFIX)
  219.     f.write('#define SRE_INFO_LITERAL %d\n' % SRE_INFO_LITERAL)
  220.     f.write('#define SRE_INFO_CHARSET %d\n' % SRE_INFO_CHARSET)
  221.     f.close()
  222.     print 'done'
  223.  
  224.